home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
FishMarket 1.0
/
FishMarket v1.0.iso
/
fishies
/
376-400
/
disk_388
/
free
/
free.h
< prev
next >
Wrap
C/C++ Source or Header
|
1992-05-06
|
4KB
|
121 lines
/***************************************************************************
* free.h: Header file with definitions.
*
* Part of...
*
* FREE: Display free space on your disk volumes.
* Author: Daniel Jay Barrett, barrett@cs.jhu.edu.
*
* This program is Freely Distributable. Make all the copies you want
* and give them away. Use this code in any way you like.
***************************************************************************/
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>
#include <libraries/dos.h>
#include <libraries/dosextens.h>
#include <exec/types.h>
#include <exec/memory.h>
#include <functions.h>
/* Macros dealing with environment variables. */
#define ENV_SEPARATOR ","
#define ENV_VARIABLE "FREE_DRIVES"
#define ENV_NAME_LENGTH 256
#define VOLUME_END_CHAR ':'
#define DEFAULT_VOLUMES "RAD:,DF0:,DF1:"
/* Macros dealing with output. */
#define HI_ON "\033[33m" /* Turn on highlighting. */
#define HI_OFF "\033[0m" /* Turn off highlighting. */
#define NONE "--" /* Drive is empty. */
#define NO_DRIVE (-1L) /* Volume does not exist. */
#define VERSION "1.01" /* Version of this program. */
/* Macros representing default and maximum sizes of things. */
#define DEFAULT_MEMORY_LIMIT BUFSIZ /* Memory allocated for output. */
#define DEFAULT_SPACING 10 /* Space to print free memory. */
#define DEFAULT_NAME_LEN 4 /* Default length of a volume name. */
#define MAX_NAME_LEN 255 /* Maximum length of a volume name. */
/* Macros for MakeFormatString(). */
#define CR 1 /* Print a carriage return. */
#define NO_CR 0 /* Do not print a carriage return. */
#define FORMAT_LENGTH 100 /* Space to store a format string. */
/* Macros for command-line options. */
#define FLAG_BLOCKS (1 )
#define FLAG_REQUESTORS (1 << 1)
#define FLAG_MALLOC (1 << 2)
#define FLAG_VOLUME_NAME_LEN (1 << 3)
#define OPT_BLOCKS 'b'
#define OPT_VOLUME_NAME_LEN 'l'
#define OPT_REQUESTORS 'r'
#define OPT_MALLOC 'm'
#define OPT_UNKNOWN '?'
#define HELP_ARG "?"
/* Human-readable names for our error codes. */
#define NO_ERROR 0
#define ERROR_TOO_SMALL 1
#define ERROR_CANT_MALLOC 2
#define ERROR_FORMAT_STRING 3
#define ERROR_IMPOSSIBLE 4
typedef int ERROR;
/* Miscellaneous macros. */
#define EQUAL !strcmp
/* Our global variables. */
long flags; /* Bit mask for user's options. */
int memSize; /* Maximum number of bytes in the output. */
int volumeNameLen; /* Length of longest volume name. */
/* Defines, global variables, and function prototype for getopt(). */
#define OPTSTRING "bl:rm:"
extern char *optarg;
extern int optind, opterr, optopt;
int getopt(int argc, char *argv[], const char *optString);
/* Function prototypes, in alphabetical order. */
long AvailSpace(struct FileLock *disk);
void CheckVolumeNameLen(int *nameLen);
int Concat(char s1[], char s2[]);
void DisableRequestors(struct Process **proc, APTR *oldWindowPtr);
void DoFree(int argc, char *argv[], char **out);
void DoNormalDrive(char *volume, char out[]);
void EnableRequestors(struct Process *proc, APTR oldWindowPtr);
void ErrorMsg(ERROR err);
void ExitCleanly(char *arr, ERROR error, int code);
void FreeFromArgs(char *argv[], long chip, long fast, char out[]);
void FreeUsingEnv(long chip, long fast, char out[]);
char * GetEnv(char *envVariable);
void GetFreeRam(long *chipRam, long *fastRam);
long GetMem(char *drive);
int GetOptions(int argc, char *argv[]);
void InitializeGlobals(void);
void MakeFormatString(char *volume, char format[], char d_or_s, int cr);
char * MakeOutArray(void);
void ShowFree(char *volume, long chipRam, long fastRam, char out[]);
void ShowFreeRam(long chip, long fast, char out[]);
int StrCaseCmp(char *s1, char *s2);
char * TheEnvValue(BPTR fileh);
void Usage(char *prog);
int ValidDriveName(char *drive);